package cn.zyzpp.client;

import cn.zyzpp.proxy.InvocationHandler;
import cn.zyzpp.proxy.Proxy;

public class Client {

    /**
     * 测试类
     * 1、声明一段源码，源码动态产生动态代理
     * 2、源码产生java文件，对java文件进行编译
     * 3、得到编译文件  调用编译任务 生产class文件
     * 4、把class文件load到内存之中，产生代理类对象返回
     */
    public static void main(String[] args) throws Exception {
        Car car = new Car();
        InvocationHandler h = new TimeHandler(car);
        //通过反射获取该类中的方法，初始化构造函数
        Moveable m = (Moveable) Proxy.newProxyInstance(Car.class, h);
        String s = m.move();
        System.out.println(s);
    }

}
